package com.excesys.exsecs.linkage.entity;

import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 场景执行动作
 *
 * @author zhangtailong
 * @date 2024-05-20 16:50:52
 */
@Data
@TableName("scene_execute_action")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "场景执行动作")
public class SceneExecuteAction extends Model<SceneExecuteAction> {


	/**
	* id
	*/
    @TableId(type = IdType.AUTO)
    @Schema(description="id")
    private Integer id;

	/**
	* 联动id  联动编号 主键
	*/
    @Schema(description="联动id  联动编号 主键")
    private String linkageId;

	/**
	* 执行动作模式 （1设备输出  2关联告警 3消息发送）
	*/
    @Schema(description="执行动作模式 （1设备输出  2关联告警 3消息发送）")
    private Integer triggerMode;

	/**
	* 设备编码
	*/
    @Schema(description="设备编码")
    private String deviceId;

	/**
	* 通道编码
	*/
    @Schema(description="通道编码")
    private String channelNo;

	/**
	 * 通道编码值
	 */
	@Schema(description="通道编码值")
	private String channelValue;

	/**
	* 告警id
	*/
    @Schema(description="告警id")
    private String alarmId;

	/**
	* 告警等级:1-一般、2-严重、3-紧急
	*/
    @Schema(description="告警等级:1-一般、2-严重、3-紧急")
    private Integer alarmLevel;

	/**
	* 告警名称
	*/
    @Schema(description="告警名称")
    private String alarmName;

	/**
	* 消息发送（1.邮箱、2.钉钉、3.企业微信）
	*/
    @Schema(description="消息发送（1.邮箱、2.钉钉、3.企业微信）")
    private Integer messageStatus;

	/**
	 * 品类标识
	 */
	@Schema(description="品类标识")
	private String identify;

	/**
	 * 品类名称
	 */
	@Schema(description="品类名称")
	private String name;

	/**
	 * 产品key
	 */
	@Schema(description="产品key")
	private String productKey;

	/**
	 * 产品名称
	 */
	@Schema(description="产品名称")
	private String productName;

	/**
	 * 产品key
	 */
	@Schema(description="设备id")
	private String unitNo;

	/**
	 * 标识符
	 */
	@Schema(description="标识符")
	private String identifier;

	/**
	 * 产品名称
	 */
	@Schema(description="设备名称")
	private String deviceName;

	/**
	 * 回路标识
	 */
	@Schema(description="回路标识")
	private String circuitId;


	/**
	 * 下发标识
	 */
	@Schema(description="下发标识")
	private String switchOnoff;


	/**
	 * 下发值类型
	 */
	@Schema(description="下发值类型")
	private String type;

	/**
	 * 延迟时间
	 */
	@Schema(description="延迟时间")
	private String delayTime;

	/**
	 * 所属字典类id
	 */
	@Schema(description = "告警信息")
	private Long  alarmInfo;

	/**
	* 创建人
	*/
	@TableField(fill = FieldFill.INSERT)
    @Schema(description="创建人")
    private String createBy;

	/**
	* 创建时间
	*/
	@TableField(fill = FieldFill.INSERT)
    @Schema(description="创建时间")
    private LocalDateTime createTime;

	/**
	* 更新人
	*/
	@TableField(fill = FieldFill.INSERT_UPDATE)
    @Schema(description="更新人")
    private String updateBy;

	/**
	* 更新时间
	*/
	@TableField(fill = FieldFill.INSERT_UPDATE)
    @Schema(description="更新时间")
    private LocalDateTime updateTime;

	@TableField(exist = false)
	private JSONObject val;

	@TableField(exist = false)
	private String devType;

	@TableField(exist = false)
	private List<SceneExecuteActionModel> sceneExecuteActionModelList;
}